package com.zkthink.ceres.applet.order.service;

import com.zkthink.base.R;
import com.zkthink.ceres.applet.common.domin.PageDate;
import com.zkthink.ceres.applet.order.domain.entity.AppletServerOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zkthink.ceres.applet.order.domain.vo.OrderStatusVo;
import com.zkthink.ceres.applet.order.domain.vo.PlaceServerOrderVo;
import com.zkthink.ceres.applet.order.domain.vo.ServerOrderSignatureConfirmationVo;
import com.zkthink.ceres.applet.order.domain.vo.SetServerStoreOrVehiclesVo;
import com.zkthink.ceres.store.dto.HeXiaoDto;

/**

@Author cmz
@Date 2024-04-30 9:32
*/
public interface AppletServerOrderService extends IService<AppletServerOrder>{

        R placeServerOrder(PlaceServerOrderVo placeServerOrderVo);

    R<Object> payOrder(Long mid, Integer orderId, String clientIP);

    R setServerStoreOrVehicles(SetServerStoreOrVehiclesVo setServerStoreOrVehiclesVo);

    R serverOrderUpdateStatus(OrderStatusVo orderStatusVo);

    R productOrderUpdateStatus(OrderStatusVo orderStatusVo);

    R ServerOrderSignatureConfirmation(ServerOrderSignatureConfirmationVo serverOrderSignatureConfirmationVo);

    R serverOrderStart(String orderCode);

    R serverOrderConfirm(OrderStatusVo orderStatusVo);

    R serverOrderComplete(OrderStatusVo orderStatusVo);

    R findServerOrderList(PageDate pageDate);

    R cancelPay(OrderStatusVo orderStatusVo);

    R findMyServer(PageDate pageDate);
    
    AppletServerOrder selectByOrderCode(String orderCode);

    R examine(HeXiaoDto dto);
}
